﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Specialized;
using System.Security.Cryptography;

namespace Aliyun.Oss
{
	/// <summary>
	/// Object service
	/// </summary>
	public interface IOssObjectService : IOssService
	{
		/// <summary>
		/// GET /bucket-name
		/// 
		/// 可以通过Prefix,Marker,MaxKeys,IsTruncated分页
		/// </summary>
		/// <returns></returns>
		IEnumerable<ObjectMeta> All { get; }

		/// <summary>
		/// PUT /bucket/file-name
		/// 
		/// </summary>
		/// <param name="fileName"></param>
		void Put(string fileName);

		/// <summary>
		/// GET /bucket-my-image.jpg
		/// 
		/// </summary>
		/// <param name="resource"></param>
		/// <returns></returns>
		OssObject Get(string resource);

		/// <summary>
		/// Delete /bucket-my-second-image.jpg
		/// 
		/// </summary>
		/// <param name="resource"></param>
		void Delete(string resource);

		NameValueCollection Metas(string ossObject);
	}
}
